决策树剪枝101
今日份知识你摄入了么?
决策树是一种容易过度拟合的机器学习算法,可以用来减少决策树中过度拟合的技术之一是剪枝。
图片来自Unsplash,作者Devin H
让我们回顾一下决策树。
决策树是一种非监督学习方法,可用于分类和回归任务。目标是建立一个模型,通过学习从数据特征推断的简单决策规则来预测目标变量的值。
决策树由以下部分组成:
根节点-决策树的最顶端,是您试图做出的最终决策。
内部节点-从根节点分支出来,表示不同的选项。
叶节点-这些节点连接在分支的末端,表示每个操作的可能结果。
就像任何其他机器学习算法一样,可能发生的最恼人的事情是过度拟合。决策树是机器学习算法之一,容易过度拟合。
过度拟合是指模型完全拟合训练数据,并且难以或未能概括测试数据。当模型记忆训练数据中的噪声时,会发生这种情况,并且无法提取能够帮助他们处理测试数据的基本模式。
可以用来减少决策树中过度拟合的技术之一是剪枝。
什么是决策树剪枝,为什么它很重要?
剪枝是一种技术,它删除了决策树中阻止其生长到完全深度的部分。它从树中移除的部分是不提供对实例进行分类的功能的部分。一个被训练到其最大深度的决策树很可能会导致过度拟合训练数据,因此剪枝是很重要的。
简单地说,决策树剪枝的目的是构造一种算法,该算法在训练数据上性能较差,但在测试数据上具有更好的泛化能力。调整决策树模型的超参数可以使模型更加公正,并节省大量时间和金钱。
如何剪枝决策树?
有两种类型的剪枝:预剪枝和后剪枝。我将介绍这两种方法以及它们的工作原理。
#
预剪枝
决策树的预剪枝技术是在训练流水线之前调整超参数。它涉及到一种被称为“早期停止”的启发式方法,它会阻止决策树的生长-阻止它达到其最大深度。
它停止了树的构建过程,以避免产生小样本的叶子。在树拆分的每个阶段,将监控交叉验证错误。如果错误值不再减少,则停止决策树的增长。
可调整用于早期停止和防止过度拟合的超参数包括:最大深度、最小样本叶和最小样本分割。
这些相同的参数也可用于调整以获得鲁棒模型。然而,你应该谨慎,因为过早停止也会导致不适。
#
后剪枝
后剪枝在整个决策树生成之后,经过验证集的测试或者泛化的时候性能不好,需要提升决策树的性能,但是重新生成决策树的话成本太高,不太现实,因此就会通过特定的计算方法剪掉一些叶子结点从而提升整棵决策树的性能。然而,当引入与学习数据不同的新数据点时,可能无法很好地预测。
可调整用于后剪枝和防止过拟合的超参数为:ccp_alpha
ccp代表成本复杂性剪枝(Cost Complexity Pruning),可以用作控制树大小的另一种选择。ccp_alpha值越高,被剪枝的节点数量就越多。
成本复杂度剪枝(后剪枝)的步骤如下:
训练你的决策树模型到它的全部深度
使用cost_complexity_pruning_path()计算ccp_alpha值
使用不同的ccp_alpha值训练决策树模型,并计算训练和测试性能分数
绘制ccp_alpha值的每个值的训练和测试分数。
这个超参数还可以用于调优以获得最佳拟合模型。
提示
以下是一些在剪枝决策树时可以应用的技巧:
如果节点变得非常小,请不要继续拆分
不提前停止的最小错误(交叉验证)剪枝是一种很好的技术
构建一个完整的深度树,并通过在每个阶段应用统计测试向后工作
剪枝内部节点并将其下的子树提升一级
结论
在本文中,我介绍了两种类型的剪枝技术及其用途。决策树很容易过度拟合,因此剪枝是算法的关键步骤。
如果你想了解有关成本复杂性修剪的后修剪决策树的更多信息,请复制此链接到浏览器打开查看:
https://scikit-learn.org/stable/auto_examples/tree/plot_cost_complexity_pruning.html
原文作者:Nisha Arya
翻译作者:Chuang Zhang
美工编辑:过儿
校对审稿:过儿
原文链接:https://www.kdnuggets.com/2022/09/decision-tree-pruning-hows-whys.html
本周公开课预告
往期精彩回顾
点击“阅读原文”查看数据应用学院核心课程